package com.cskaoyan.javase.basic._2variable._4detail;
/**
 * 整数常量的特殊性
 * 我们其实可以发现编译器是很"聪明"的：
 *
 * 对于整数字面值常量（包括常量的运算）而言，因为它的值一定不会发生变化，
 * 而且整型数据值的位数十分容易判断，所以编译器能够自动判断整型常量是否在接收数据类型的范围内。
 * 体现在语法上就是：将一个整型字面值（包括常量的运算）赋值给某一个整型时，如果该常量在这个整型数据类型的取值范围内，是可以赋值成功的。
 *
 * 反之，如果不在取值范围内，是不可以赋值的。
 *
 * @since 17:43
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo6 {
    public static void main(String[] args) {
        // int --> byte 应该是强转，那么为什么不报错呢？
        byte num1 = 100;

        // int --> char 应该是强转，那么为什么不报错呢？
        char num2 = 30000;

        byte num3 = 100 + 20;
        // 上述式子完全等价下面的式子
        byte num4 = 120;

        byte a = 100;
        byte b = 20;
        int result = a + b;
        int result2 = a + 20;

        double d1 = 0.1;
        float d2 = 0.1F;
    }
}
